package com.ruoyi.datascreen.service;

import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.datascreen.domain.DsElement;
import com.ruoyi.datascreen.domain.vo.DsElementVo;
import com.ruoyi.datascreen.domain.bo.DsElementBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;

import java.util.Collection;
import java.util.List;

/**
 * 大屏元素Service接口
 *
 * @author ruoyi
 * @date 2023-11-19
 */
public interface IDsElementService {

    /**
     * 查询大屏元素
     */
    DsElementVo queryById(Long elementId);

    /**
     * 根据元素获取相关模型信息
     *
     * @param dsElementVo
     * @return
     */
    DsElementVo selectElementModel(DsElementVo dsElementVo);

    JSONObject selectEchartsInfoById(Long elementId) throws ClassNotFoundException;

    /**
     * 查询大屏元素列表
     */
    TableDataInfo<DsElementVo> queryPageList(DsElementBo bo, PageQuery pageQuery);

    /**
     * 查询大屏元素列表
     */
    List<DsElementVo> queryList(DsElementBo bo);

    /**
     * 新增大屏元素
     */
    Boolean insertByBo(DsElementBo bo);

    /**
     * 修改大屏元素
     */
    Boolean updateByBo(DsElementBo bo);

    /**
     * 校验并批量删除大屏元素信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}
